﻿namespace RuoVea.OmiApi.Upload.Service.Dto;

/// <summary>
/// 上传配置类
/// 用于配置文件上传的各种参数和限制
/// </summary>
public class UploadConfig
{
    /// <summary>
    /// 允许上传的最大文件大小（字节）- 全局默认值
    /// </summary>
    public long MaxFileSize { get; set; }

    /// <summary>
    /// 文件上传的根目录路径
    /// </summary>
    public string UploadPath { get; set; } = string.Empty;

    /// <summary>
    /// 是否使用原始文件名保存文件 - 全局默认值
    /// true：使用原始文件名；false：生成随机文件名
    /// </summary>
    public bool UseOriginalFileName { get; set; }

    /// <summary>
    /// 文件名的最大长度限制 - 全局默认值
    /// </summary>
    public int MaxFileNameLength { get; set; }

    /// <summary>
    /// 是否覆盖已存在的同名文件 - 全局默认值
    /// true：覆盖；false：不覆盖（可能会生成新文件名）
    /// </summary>
    public bool OverwriteExisting { get; set; }

    /// <summary>
    /// 文件类型路径映射配置数组
    /// 用于根据不同文件类型指定不同的存储路径和配置
    /// </summary>
    public FileTypePathMapping[] FileTypePathMappings { get; set; } = Array.Empty<FileTypePathMapping>();
}
